home *** CD-ROM | disk | FTP | other *** search
-
- DIM EdT,EdL,EdB,EdR ' an edit field rectangle
- EdT = 20 : EdL = 20 : EdB = 150 : EdR = 200
-
- DIM FrT,FrL,FrB,FrR ' rect for edit field frame
-
- BLOCKMOVE VARPTR(EdT),VARPTR(FrT),8' copy data
- CALL INSETRECT(FrT,-1,-1) ' bump it out a little
-
- DIM 80 MyTxt$
- MyTxt$ = "•• This is text that is from a ZBasic string."
-
- COORDINATE WINDOW
- WINDOW 1
- AUTOCLIP = _False
- TEXT 3,9 ' Geneva 9 pt
-
- TEHndl& = FN TENEW(EdT,EdT) ' veiw and destination rect equal
- CALL TEACTIVATE(TEHndl&)
-
- IF TEHndl& = 0 THEN STOP ' avoid bombs - TE is unforgiving
-
- test$ = FILES$(1,"TEXT",,volRef)
- OPEN "I",1,"Test File1",1,volRef ' now get file data
- FLen& = LOF(1) ' find length of file
- Hndl& = FN NEWHANDLE(FLen&) ' get RAM from memory mgr
- LONG IF Hndl& <> 0 ' if it is non-zero, we're okay.
- OSErr = FN HLOCK(Hndl&)
- Addr& = PEEK LONG (Hndl&) ' derive address
- READ FILE 1,Addr&,FLen& ' get data
- CLOSE 1 ' close file (should really ck ERROR)
- FLen = FLen& ' TE needs integers, not longs
- CALL TESETTEXT(Addr&,FLen,TEHndl&)' put text into edit field
- OSErr = FN DISPOSHANDLE(Hndl&) ' kill original copy of text data
-
- CALL TESETSELECT(FLen,FLen,TEHndl&)' put cursor at end
-
- StrAddr& = VARPTR(MyTxt$) + 1 ' find address of ZBasic string
- CALL TEINSERT(StrAddr&,LEN(MyTxt$),TEHndl&)' put string into field
- 'CALL TECALTEXT(TEHndl&)
- TELen = PEEK WORD(PEEK LONG(TEHndl&)+60)' find new length
- CALL TESETSELECT(TELen,TELen,TEHndl&)' put cursor at end again
-
- OPEN "I",1,"Test File2",1,volRef' open second data file
- FLen& = LOF(1) ' get length of text data
- Hndl& = FN NEWHANDLE(FLen&) ' get space
- LONG IF Hndl& <> 0 ' check for nil handle
- OSErr = FN HLOCK(Hndl&)
- Addr& = PEEK LONG(Hndl&)
- READ FILE 1,Addr&,FLen&
- CLOSE 1
- FLen = FLen&
- CALL TEINSERT(Addr&,FLen,TEHndl&)' note this is TEINSERT, not SETTEXT
- OSErr = FN DISPOSHANDLE(Hndl&)' release original
- CALL TESETSELECT(0,0,TEHndl&)' put cursor at beginning
- 'CALL TECALTEXT(TEHndl&)
- CALL TEUPDATE (EdT,TEHndl&) ' show field contents now
- CALL FRAMERECT(FrT) ' and frame it
- PRINT%(10,200);"Press any key to end..."
- DO
- UNTIL LEN(INKEY$)
- XELSE
- GOSUB "OOM"
- END IF
- XELSE
- GOSUB "OOM" ' memory error
- END IF
-
- IF TEHndl& <> 0 THEN CALL TEDISPOSE(TEHndl&)
- END
-
- "OOM"
- PRINT%(10,200);"Memory error!"
- RETURN
-